import java.util.Arrays;
import java.util.Scanner;

public class Solution3 {//https://leetcode.cn/problems/merge-sorted-array/
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        // 从后向前合并
        int i = m - 1; // nums1的最后一个有效元素
        int j = n - 1; // nums2的最后一个元素
        int k = m + n - 1; // 合并后的最后一个位置
        while (i >= 0 && j >= 0) {
            if (nums1[i] > nums2[j]) {
                nums1[k--] = nums1[i--];
            } else {
                nums1[k--] = nums2[j--];//先用再减第一次是nums1[5]=nums2[2],这个用了才减
            }
        }
        // 如果nums2还有剩余元素
        while (j >= 0) {//如果nums1先遍历完，nums2一个也没有遍历，就说明nums2中的元素中的所有元素都小于nums1中最小的元素
            //nums1不用检查，如果nums2先遍历完，nums1一个也没有遍历，就说明nums1中的元素中的所有元素都小于nums2中最小的元素，而nums1本来就在nums1中
            //就已经是正确的位置啦
            nums1[k--] = nums2[j--];
        }
    }
    public static void main(String[] args) {
        Solution3 solution3=new Solution3();
        int[] m1={1,2,3,0,0,0};
        int[] m2={2,5,6};
        Scanner scanner=new Scanner(System.in);
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        solution3.merge(m1,a,m2,b);
        System.out.println(Arrays.toString(m1));

    }
}
